const quickSort = arr => {
  // 递归出口:排序到数组长度为1时，直接返回
  if (arr.length <= 1) {
    console.log(arr, 'arr');
    return arr;
  }
  // 取基准值
  const pivot = arr[0];
  // 定义左右数组
  let left = [];
  let right = [];
  // 遍历数组
  for (let i = 1; i < arr.length; i++) {
    // 小于基准值的放在左边数组，大于基准值的放在右边数组
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  // 递归调用
  left = quickSort(left);
  right = quickSort(right);
  const newArr = [...left, pivot, ...right];
  // 递归前：left: [2,0,1] right:[4,5]
  // console.log('递归前：left:', left, 'right:', right);
  console.log('nnn', newArr);

  return newArr;
};

console.log(quickSort([3, 2, 0, 1, 4, 5]));
